type class
set theory
https://en.wikipedia.org/wiki/Type_class